Katana: Towards Patching as a Runtime Part of the Compiler-Linker-Loader Toolchain
نویسندگان
چکیده
Despite advances in modularity, security, and reliability of software, offline patching remains the predominant form of updating or protecting commodity software. Unfortunately, the mechanics of hot patching (the process of upgrading a program while it executes) remain understudied, even though such a capability offers practical benefits for both consumer and mission-critical systems. A reliable hot patching procedure would serve particularly well by reducing the downtime necessary for critical functionality or security upgrades. Yet, hot patching also carries the risk – real or perceived – of leaving the system in an inconsistent state, which leads many owners to forgo its benefits as too risky; for systems where availability is critical, this decision may result in leaving systems unpatched and hence vulnerable. In this paper, we present a novel method for hot patching ELF binaries that supports (a) synchronized global data and code updates and (b) reasoning about the results of applying the hot patch. We develop a format, which we call a Patch Object, for encoding patches as a special type of ELF relocatable object file. We then build a tool, Katana, that automatically creates these patch objects as a byproduct of the standard source build process. Katana also allows an end-user to apply the Patch Objects to a running process. In essence, our method can be viewed as an extension of the Application Binary Interface (ABI), and we argue for its inclusion in future ABI standards.
منابع مشابه
Automatic Architecture Description Language (ADL)-Based Toolchain Generation: The Dynamic Linking Framework
In order to succeed in the fulfillment of clients ever increasing expectations, embedded systems companies are entering the area of multitasking environments. As memory is still a primary concern to achieve a good tradeoff between system performance and cost, we cannot rule out dynamic linking techniques since they reduce memory consumption at runtime. Using parameters from an ADL model of the ...
متن کاملCompiler-assisted Code Randomization
Despite decades of research on software diversification, only address space layout randomization has seen widespread adoption. Code randomization, an effective defense against return-oriented programming exploits, has remained an academic exercise mainly due to i) the lack of a transparent and streamlined deployment model that does not disrupt existing software distribution norms, and ii) the i...
متن کاملA Compiler Toolchain for Distributed Data Intensive Scientific Workflows
by Peter Bui With the growing amount of computational resources available to researchers today and the explosion of scientific data in modern research, it is imperative that scientists be able to construct data processing applications that harness these vast computing systems. To address this need, I propose applying concepts from traditional compilers, linkers, and profilers to the constructio...
متن کاملTowards Running Parallel Programs on the Bare Metal via Virtualization
Decades of parallel computing practice have proven that highly parallel code runs efficiently only when it has uninterrupted access to the hardware. We report on a project whose goal is to support compiling Data Parallel Haskell code into bootable disk images. Our toolchain layers the Data Parallel Haskell runtime system on top of the GeekOS operating system and Newlib C library. We explain how...
متن کاملOberon Script: A Lightweight Compiler and Runtime System for the Web
Oberon Script is a scripting language and runtime system for building interactive Web Client applications. It is based on the Oberon programming language and consists of a compiler that translates Oberon Script at load-time into JavaScript code, and a small runtime system that detects and compiles script sections written in Oberon Script.
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- IJSSE
دوره 1 شماره
صفحات -
تاریخ انتشار 2010